﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OpenExpressApp.Types
{
    /// <summary>
    /// 工具条的类型
    /// </summary>
    public enum ToolbarType
    {
        /// <summary>
        /// 可以放置在主对象和子对象工具条
        /// </summary>
        Any,
        /// <summary>
        /// 放置到窗体主对象工具条面板
        /// </summary>
        Main,
        /// <summary>
        /// 放置到窗体子对象工具条面板
        /// </summary>
        Child,
        /// <summary>
        /// 不自动放置在工具条（手工放置）
        /// </summary>
        Manual
    }

    /// <summary>
    /// 显示的视图类型
    /// </summary>
    public enum AssociationOperateType
    {
        /// <summary>
        /// 默认处理方式,操作关联对象
        /// </summary>
        Self,
        /// <summary>
        /// 选择操作对象模式,从一个选择列表中通过勾选进行对象操作
        /// 
        /// 如果要设置为这个类型，该属性集合必须实现IUnderlyModelList接口，而其中的元素类型必须实现IUnderlyModel接口。
        /// </summary>
        Selected
    }


    /// <summary>
    /// 显示的视图类型
    /// </summary>
    public enum ViewType
    {
        /// <summary>
        /// 任意
        /// </summary>
        Any,
        /// <summary>
        /// 列表类型
        /// </summary>
        ListView,
        /// <summary>
        /// 详细显示
        /// </summary>
        DetailView
    }

    /// <summary>
    /// 区域的类型
    /// </summary>
    public enum RegionType
    {
        Data,
        /// <summary>
        /// 条件查询
        /// </summary>
        ConditionQuery,
        /// <summary>
        /// 导航
        /// </summary>
        NavigateQuery,
        LookupList,
        Dialog,
    }

    /// <summary>
    /// 导航查询类型
    /// </summary>
    public enum NavigateQueryMode
    {
        Remote, //通过调用对象GetList去远程获取书籍
        Local   //通过对象属性值在本地过滤
    }

    /// <summary>
    /// 模块类型
    /// </summary>
    public enum ModuleType
    {
        /// <summary>
        /// 未指定
        /// </summary>
        Unspecified,
        /// <summary>
        /// 列表类编辑窗体
        /// </summary>
        List,
        /// <summary>
        /// 单据编辑类窗体
        /// </summary>
        Bill,
        /// <summary>
        /// 弹出类二级窗体 
        /// </summary>
        Popup,
        /// <summary>
        /// 查询类窗体
        /// </summary>
        Query
    }

    /// <summary>
    /// 子窗体显示类型
    /// </summary>
    public enum ChildObjectShowType
    {
        Tab,
        Popup
    }

    public enum QueryRegionPosition
    {
        /// <summary>
        /// 单独摆放在查询面板
        /// </summary>
        Alone,
        /// <summary>
        /// 放在结果View上面
        /// </summary>
        ResultView
    }

    public enum Direction
    {
        /// <summary>
        /// 水平
        /// </summary>
        Horizontal,
        /// <summary>
        /// 垂直。 细表默认和主表垂直显示
        /// </summary>
        Vertical,
    }

    /// <summary>
    /// 查询面板列表类型(ListView)编辑器返回的查询参数值类型(此类型约定字段后缀名,不能修改)
    /// </summary>
    public enum QueryItemValueType
    {
        //None,
        /// <summary>
        /// 导航对象Id值。
        /// 这里其实不只设置Id，还会设置Object
        /// </summary>
        Id,
        //Ids,        //导航对象Id串,多选
        //Object,   //导航对象
        //Objects     //导航对象集合
    }

    /// <summary>
    /// 命令类型
    /// </summary>
    public enum CommandType
    {
        Simple,          //默认为Simple，由一个按钮触发或者Group的MenuItem
        Menu,
        //PopupWindow,     //弹出二级窗口 
        //SingleChoice,    //单选
    }

    /// <summary>
    /// 命令的分类
    /// </summary>
    public enum CommandCategory
    {
        Unspecified,
        //Filter,
        RecordEdit,
        View,
        Print,
        RecordsNavigation,
        Search,
        ViewsHistoryNavigation,
        ViewsNavigation,
        Export,
        Options,
        Tools,
        About
    }
}